package com.liyao.storehouse.api.utill;

import lombok.extern.slf4j.Slf4j;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 格式化日期格式
 * @author WeiNing
 * @since 2023.6.19
 */
@Slf4j
public class DateFormatUtils {

    /**
     * 日期格式化为yyyy-MM-dd格式字符串
     * @return
     */
    public static String day(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        return sdf.format(new Date());
    }

    /**
     * 日期格式化为yyyy-MM-dd HH:mm:ss格式字符串
     * @return
     */
    public static String dayAndTime(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date());
    }

    /**
     * 日期格式化为yyyy格式字符串
     * @return
     */
    public static String year(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
        return sdf.format(new Date());
    }

    /**
     * 日期格式化为yyyyMMddHHmmss格式字符串
     * @return
     */
    public static String id(){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
        return sdf.format(new Date());
    }

    /**
     * 日期格式化为字符串
     * @param format 字符串格式
     * @return
     */
    public static String format(String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(new Date());
    }

    /**
     * 日期格式化为字符串
     * @param date
     * @param format 字符串格式
     * @return
     */
    public static String format(Date date, String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
    }

    /**
     * 日期格式字符串转时间戳
     * @param format 字符串格式
     * @return
     */
    public static long format(String str, String format) {
        long timestamp = new Date().getTime();
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        try {
            Date date = sdf.parse(str);
            timestamp = date.getTime();
        } catch (Exception e) {
            log.info("日期转换错误: {}", e.getMessage());
        }
        return timestamp;
    }
}
